package com.im.service;

import javax.websocket.EndpointConfig;
import javax.websocket.Session;

/**
 * 基于javax webSocket通信
 */
public interface WebSocketServer {

    /**
     * 建立链接成功的回调方法
     * @param session
     * @param config
     */
    public void  onOpen(Session session, EndpointConfig config);

    /**
     * 断开链接方法
     * @param session
     */
    public void onClose(Session session);

    /**
     * 收到客户端消息后回调的方法
     * @param session   session对象
     * @param message   返回客户端的消息
     */
    public void onMessage(Session session,String message);

    /**
     * 发生异常是触发的方法
     * @param session     session对象
     * @param throwable   抛出的异常
     */
    public void onError(Session session,Throwable throwable);

    /**
     * 向单个客户端发送消息
     * @param session   session对象
     * @param message   发送给客户端的消息
     */
    public void sendMessage(Session session,String message);

    /**
     * 向所有在线客户群发消息
     * @param message  发送个客户端的消息
     */
    public void batchSendMessage(String message);
}
